U.S. Pat. No. 7,035,933 describes a system and method that has proved useful for online distributed broadcasting of audio and video material. The disclosed system and method can reduce the amount of bandwidth consumed by video streaming servers by limiting the server's number of direct connections over the Internet to only a small number of end-consumer computers, and then utilizing a portion of the end-consumer computers that are tuned to the broadcast over the Internet as “repeater nodes” to help propagate the online broadcast to other viewers' computers. This approach to online broadcasting is in contrast to industry standard content delivery networks wherein each end-consumer's computer that is to receive an audio/video stream must establish a direct connection to a server. These servers are typically owned or operated on behalf of the broadcaster and thus the broadcaster is responsible for the bandwidth costs associated with each of these direct connections.
Various embodiments of the system and method disclosed in U.S. Pat. No. 7,035,933 display the following highly desirable traits:                The network architecture is based on a balanced binary tree and as such is tailored to deliver live broadcasts, not simply pre-recorded material as is the case with peer-to-peer networks, such as BitTorrent and the like.        The network architecture supports the addition of nodes (computers) as end-consumers tune in to the broadcast and the removal of nodes (computers) as end-consumers exit the broadcast. As a result, the invention does not need to run as a “background task” nor continuously tap into end-consumer's bandwidth as with peer-to-peer file sharing technologies. Instead the invention of U.S. Pat. No. 7,035,933 need only use an end-consumer's bandwidth while that end-consumer is tuned to a program.        The system and method disclosed in U.S. Pat. No. 7,035,933 does not store audio video content files on end-consumers' computers. This is in contrast to peer-to-peer file sharing systems which to work effectively must cache content throughout the network.        Because the system and method disclosed in U.S. Pat. No. 7,035,933 is based on a balanced binary tree, only one half of the nodes (end-consumer computers) in the network need act as repeater nodes in order for the system to achieve maximum bandwidth savings efficiency. This enables software applications incorporating this invention to be “polite” in the sense that whenever an end-consumer's computer is acting as a repeater node and that end-consumer needs to use his or her upstream bandwidth for other purposes (such as email, gaming, or Voice Over IP [VOIP] applications) that end-consumer's computer is moved to the edge of the network where it will no longer be expected to retransmit the broadcast. This reorganization of the network can take place without interrupting the end-consumer's viewing experience. The end result is a polite system that immediately relinquishes use of the end-consumer's upstream bandwidth the moment the end-consumer has need of that bandwidth for other purposes. In other words, the invention does not interfere with the end-consumers use of his or her Internet connection since the moment the end-consumer tries to send off a file (or otherwise use the upstream Internet connection) applications incorporating the invention relinquish control of the upstream Internet connection immediately. The bottom line is that end-consumer see no degradation in their Internet service when using applications based on the invention.        The system and method disclosed in U.S. Pat. No. 7,035,933 spreads the bandwidth needs of the system thinly throughout the network—never requiring an end-consumer computer to supply more than two copies of the video stream to other viewers. As a result the system avoids “super-noding” in which nodes (computers) with access to large amounts of bandwidth are expected to provide copies of the broadcast stream to large numbers of viewers. Not only is expecting certain computers to act as super nodes impolite, there are two very important reasons for avoiding it. First, if an application attempts to appropriate a large amount of bandwidth when running on corporate or university LANs the system administrators of those networks will take steps to block the application—which will result in potential viewers on corporate and university LANs from being able to run the application to watch video. The second reason to avoid designating certain computers as super nodes is that systems which depend on a small number of nodes to support a large percentage of the system's viewers are fragile in the sense that when a super node departs the system a large “hole” is created in the network that must somehow be “filled in” almost immediately or large numbers of viewers will experience signal degradation and loss of video stream.        The system and method of U.S. Pat. No. 7,035,933 delivers an exceptional Quality of Service. In addition to the characteristics described above, the reconfiguration algorithms covered by the patent use the turnover inherent in distributed networks (as viewers tune in and tune out) to promote the most reliable nodes to the most critical regions of the network, driving the network towards highly stable configurations which improve the quality of service delivered by the system.        
The system and method of U.S. Pat. No. 7,035,933 also suffers from certain limitations, including the fact that the reconfiguration algorithms are described in detail only for binary trees in which all internal nodes must be capable of supporting two children nodes. This means that for a node (an end-consumer computer) to be used to repeat the broadcast stream to even a single additional computer, the node must have the upstream bandwidth capacity to support two additional computers. As a result, nodes (end-consumer computers) that only have access to Internet connections with upstream bandwidth capacity to send out a single copy of the broadcast stream are underutilized—they are never allowed to repeat the broadcast to anyone.
The practical consequences of these limitations are that for a given video streaming bit rate and a collection of nodes (end-consumer computers) possessing a variety of different upstream bandwidth capabilities, some nodes that could have been employed to rebroadcast the video stream will not be asked to do so, reducing the overall bandwidth efficiency that could have been otherwise achieved. Likewise for a given bandwidth efficiency target, a higher bit rate video stream could be supported, resulting in better picture quality and/or audio for the end-consumer.
Incorporating such a change into the system and method of U.S. Pat. No. 7,035,933 requires addressing the difficult problem of how to build and maintain a binary broadcast tree with repeat capable nodes of differing abilities. In order to create a useful and practical online broadcasting system, algorithms must be designed to build and maintain binary broadcast trees consistent with promoting the most reliable nodes to the most critical regions of the network (to promote stability) while maintaining overall tree balance (to limit propagation delays) and employing nodes that lack the ability to repeat to two children but possess the ability to repeat to a single child (to increase overall network efficiency).